<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
        //obj1的值赋值给obj2，这时obj2的值跟obj1一样
        var obj1={name:"Tom"};
        var obj2=obj1;
        console.log(obj1,obj1.name);
        console.log(obj2,obj2.name);
        //obj1的name值赋新值，这时obj2的name值也会随之变化，反之也一样
        obj1.name="Jerry";
        console.log(obj1.name);
        console.log(obj2.name);
        //给obj1增加一个age值，这时obj2也会随obj1变化，反之也一样
        obj1.age=18;
        obj2.gender="man";
        console.log(obj1);
        console.log(obj2);
        //设置一个函数来改变obj1的name
        function fn(obj)
        {
            obj.name="Bob";
        }
        fn(obj1);
        //通过函数改变obj1的name后，obj2的值也会随之改变，反之也一样
        console.log(obj1,obj2);

        //设置对象a，并且把a赋值给b
        var a={age:12};
        var b=a;
        //重新定义a所指的对象，此时b不会随着a的重新定义而改变，而是指向之前继承a的对象
        //同样的，在重新定义a的值后，b的修改也不会影响a
        a={name:"Bob",age:16};
        b.age=14;
        console.log(a,b);
        //设置一个函数来改变a的age值
        function fn2(obj)
        {
            obj.age=20;
        }
        fn2(a);
        //在执行函数修改age值后，a的age被修改了，但是同样的，b的age值不会随之修改
        console.log(a,b);
    </script>
</head>
<body>
    <!--
        关于引用变量赋值问题
        N个引用变量指向同一个对象，通过一个变量修改对象内部数据，其他所有变量看到的是修改之后的数据
        也就是：如果进行了引用后，被引用的值进行了修改，引用的也会修改

        两个引用变量指向同一个对象，让其中一个引用变量指向另一个对象，另一个引用变量依然指向前一个对象
    -->
</body>
</html>